home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Ham Radio
/
Ham Radio CD-ROM (Emerald Software) (1995).ISO
/
ant
/
antenna2
/
txnline.bas
< prev
next >
Wrap
BASIC Source File
|
1986-08-11
|
2KB
|
72 lines
10 CLS:KEY OFF
20 T$="TRANSMISSION LINE CALCULATION" :L=1:GOSUB 160
30 T$="LOSSLESS LINE":L=2:GOSUB 160
40 PRINT:PRINT:PRINT
50 ' AHMAD FAIZAL MOHD ZAIN
60 ' JULY 8, 1986
70 PI=3.141592
80 :
90 DEF FN MAG(X,Y)=SQR(X*X+Y*Y)
100 DEF FN ANG(X,Y)=ATN(Y/X)
110 :
120 DEF FN REAL(MAG,THETA)=MAG*COS(THETA)
130 DEF FN IMAG(MAG,THETA)=MAG*SIN(THETA)
140 :
150 GOTO 180
160 LOCATE L,(80-LEN(T$))/2+1:PRINT T$:RETURN
170 :
180 INPUT"ENTER FREQUENCY (MHZ)";FREQ
190 INPUT"ENTER CHARACTERISTIC IMPEDANCE";Z0
200 INPUT"ENTER LOAD IMPEDANCE (REAL PART)";RL
210 INPUT"ENTER LOAD IMPEDANCE (IMAG PART)";XL
220 INPUT"ENTER LENGTH OF LINE (METERS)";L
230 PRINT
240 LAMBDA=300/FREQ
250 BETA=2*PI/LAMBDA
260 BL=BETA*L
270 ZL=FN MAG(RL,XL)
280 X=RL:Y=XL:GOSUB 670:THETA=T*PI/180
290 :
300 :
310 AX=Z0-ZL*SIN(THETA)*TAN(BL)
320 AY=ZL*COS(THETA)*TAN(BL)
330 MAGA=FN MAG(AX,AY)
340 X=AX:Y=AY:GOSUB 670:ANGA=T*PI/180
350 BX=RL
360 BY=XL+Z0*TAN(BL)
370 MAGB=FN MAG(BX,BY)
380 X=BX:Y=BY:GOSUB 670:ANGB=T*PI/180
390 MAGZIN=Z0*MAGA/MAGB
400 ANGZIN=ANGA-ANGB
410 REAL=MAGZIN*COS(ANGZIN):IMAG=MAGZIN*SIN(ANGZIN)
420 IF IMAG<0 THEN SIGN$=" -j" ELSE SIGN$=" +j"
430 PRINT USING"INPUT IMPEDANCE OF LINE IS : ###.##";REAL;:PRINT SIGN$;:PRINT USING "###.##";ABS(IMAG)
440 PRINT
450 :
460 REM REFLECTION COEFFICIENT
470 X=RL-Z0: Y=XL
480 MAGA=FN MAG(X,Y)
490 GOSUB 670:ANGA=T*PI/180
500 X=RL+Z0: Y=XL
510 MAGB=FN MAG(X,Y)
520 GOSUB 670:ANGB=T*PI/180
530 GAMMA=MAGA/MAGB:ANGAMMA=(ANGA-ANGB)*180/PI
540 PRINT USING"COEFFICIENT OF REFLECTION IS MAGNITUDE = ##.##";GAMMA;:PRINT USING" AND ANGLE = ####.##";ANGAMMA;:PRINT" DEGREES"
550 PRINT
560 :
570 REM FIND SWR
580 IF GAMMA=1 THEN PRINT"SWR IS INFINITE":GOTO 620
590 GAMMA=ABS(GAMMA)
600 S=(1+GAMMA)/(1-GAMMA)
610 PRINT USING"SWR IS ##.##";S
620 T$="DO YOU WANT TO RUN THIS PROGRAM AGAIN (Y/N)? ":L=23:GOSUB 160
630 AN$=INKEY$
640 IF AN$="Y" OR AN$="y" THEN RUN
650 IF AN$="N" OR AN$="n" THEN END
660 GOTO 620
670 IF X>0 THEN T=(180/PI)*ATN(Y/X)
680 IF X<0 THEN T=180*SGN(Y)+(180/PI)*ATN(Y/X)
690 IF X=0 THEN T=90*SGN(Y)
700 IF Y=0 AND X<0 THEN T=180
710 RETURN